#include "Stand.h"
#include "Flight.h"
#include "AircraftType.h"
#include "Aircraft.h"
#include "Time.h"
#include <list>

#ifndef GATESTAND
#define GATESTAND

/*------------------------------------------------------------
/ Gate Stand Header
/ By: Mark Freedman
/ Date: February 26 2011
/ Description: A definition of the Gate Stand Class. Defines the
/ extended attributes deallocation time, current aircraft, and 
/ accomodation rlist, as well as defining getter and setter methods 
/ for most, with a few methods specific to the list
------------------------------------------------------------*/

class GateStand : public Stand{
private:
	//attributes
	std::list<Flight>* accomodationList;	//the list of all flights associated with the gate stand
	std::list<AircraftType>* typeList;		//the types of stand accomodatable by the stand
	Aircraft* currentAircraft;		//the current aircraft that is present at the stand
public:
<<<<<<< .mine
=======
	//attributes
	std::list<Flight> *accomodationList;	//the list of all flights associated with the gate stand
	std::list<AircraftType> *typeList;					//the type of stand
	Aircraft *currentAircraft;		//the current aircraft that is present at the stand

>>>>>>> .r38
	//methods
	GateStand(std::string);
	GateStand(std::string, std::list<AircraftType>*);
	~GateStand(void);
<<<<<<< .mine
	
	void setStandID(std::string);

	Aircraft* getCurrentAircraft (void);			
	void setCurrentAircraft (Aircraft*);
	void setCurrentAircraft (void);
		
=======
	std::list<Flight>* getAccomodationList (void);	
	Aircraft* getCurrentAircraft (void);			
	void setStandID(std::string);
	void setCurrentAircraft (Aircraft*);
	void setCurrentAircraft (void);
>>>>>>> .r38
	void addFlightToList (Flight);
	int removeFlightFromList (Flight);
	
	std::list<AircraftType>* getTypeList();
	void setTypeList(std::list<AircraftType>*);
	void addAircraftType(AircraftType*);
	
	std::list<Flight>* getAccomodationList (void);	
	void setAccodmodationList(std::list<Flight>*);
	void addToAccomodationList(Flight*);
	
	void flightCompleted ();
};

#endif

